implement MIN_SIZE, MAX_SIZE and RESIZE_INC.
authorMichael Natterer <mitch@imendio.com>
Tue, 8 Aug 2006 22:55:27 +0000 (22:55 +0000)
committerMichael Natterer <mitch@src.gnome.org>
Tue, 8 Aug 2006 22:55:27 +0000 (22:55 +0000)
2006-08-09  Michael Natterer  <mitch@imendio.com>

* gdk/quartz/gdkwindow-quartz.c (gdk_window_set_geometry_hints):
implement MIN_SIZE, MAX_SIZE and RESIZE_INC.

ChangeLog
ChangeLog.pre-2-10
gdk/quartz/gdkwindow-quartz.c

index bfa7d8be0983dfa6814e3d36b14e2a0d40867b7b..bb364b5f14c0fc17b2cc5e7811ce58624944c0d4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-08-09  Michael Natterer  <mitch@imendio.com>
+
+       * gdk/quartz/gdkwindow-quartz.c (gdk_window_set_geometry_hints):
+       implement MIN_SIZE, MAX_SIZE and RESIZE_INC.
+
 2006-08-08  Richard Hult  <richard@imendio.com>
 
        * gtk/gtkdnd-quartz.c: Implement get/set_track_motion.
index bfa7d8be0983dfa6814e3d36b14e2a0d40867b7b..bb364b5f14c0fc17b2cc5e7811ce58624944c0d4 100644 (file)
@@ -1,3 +1,8 @@
+2006-08-09  Michael Natterer  <mitch@imendio.com>
+
+       * gdk/quartz/gdkwindow-quartz.c (gdk_window_set_geometry_hints):
+       implement MIN_SIZE, MAX_SIZE and RESIZE_INC.
+
 2006-08-08  Richard Hult  <richard@imendio.com>
 
        * gtk/gtkdnd-quartz.c: Implement get/set_track_motion.
index 110c0f9c075c27e06f3c8383895330b0eb91dbbe..d70be11ac09d28892c364ed2a8953fcaaef42e05 100644 (file)
@@ -1299,7 +1299,77 @@ gdk_window_set_geometry_hints (GdkWindow      *window,
                               GdkGeometry    *geometry,
                               GdkWindowHints  geom_mask)
 {
-  /* FIXME: Implement */
+  GdkWindowImplQuartz *impl;
+
+  g_return_if_fail (GDK_IS_WINDOW (window));
+  g_return_if_fail (geometry != NULL);
+
+  if (GDK_WINDOW_DESTROYED (window))
+    return;
+  
+  impl = GDK_WINDOW_IMPL_QUARTZ (((GdkWindowObject *) window)->impl);
+  if (!impl->toplevel)
+    return;
+
+  if (geom_mask & GDK_HINT_POS)
+    {
+      /* FIXME: Implement */
+    }
+
+  if (geom_mask & GDK_HINT_USER_POS)
+    {
+      /* FIXME: Implement */
+    }
+
+  if (geom_mask & GDK_HINT_USER_SIZE)
+    {
+      /* FIXME: Implement */
+    }
+  
+  if (geom_mask & GDK_HINT_MIN_SIZE)
+    {
+      NSSize size;
+
+      size.width = geometry->min_width;
+      size.height = geometry->min_height;
+
+      [impl->toplevel setContentMinSize:size];
+    }
+  
+  if (geom_mask & GDK_HINT_MAX_SIZE)
+    {
+      NSSize size;
+
+      size.width = geometry->max_width;
+      size.height = geometry->max_height;
+
+      [impl->toplevel setContentMaxSize:size];
+    }
+  
+  if (geom_mask & GDK_HINT_BASE_SIZE)
+    {
+      /* FIXME: Implement */
+    }
+  
+  if (geom_mask & GDK_HINT_RESIZE_INC)
+    {
+      NSSize size;
+
+      size.width = geometry->width_inc;
+      size.height = geometry->height_inc;
+
+      [impl->toplevel setContentResizeIncrements:size];
+    }
+  
+  if (geom_mask & GDK_HINT_ASPECT)
+    {
+      /* FIXME: Implement */
+    }
+
+  if (geom_mask & GDK_HINT_WIN_GRAVITY)
+    {
+      /* FIXME: Implement */
+    }
 }
 
 void
@@ -1331,7 +1401,7 @@ gdk_window_set_role (GdkWindow   *window,
   /* FIXME: Implement */
 }
 
-void          
+void
 gdk_window_set_transient_for (GdkWindow *window, 
                              GdkWindow *parent)
 {
@@ -1438,7 +1508,6 @@ gdk_window_set_icon (GdkWindow *window,
                     GdkPixmap *pixmap,
                     GdkBitmap *mask)
 {
-  g_return_if_fail (window != NULL);
   g_return_if_fail (GDK_IS_WINDOW (window));
 
   /* FIXME: Implement */
@@ -1448,7 +1517,6 @@ void
 gdk_window_set_icon_name (GdkWindow   *window, 
                          const gchar *name)
 {
-  g_return_if_fail (window != NULL);
   g_return_if_fail (GDK_IS_WINDOW (window));
 
   /* FIXME: Implement */